The present invention relates generally to the distribution and processing of messages in a communications network. More particularly, the present invention relates to methods and systems for distributing messages among multiple processors for stateful or sequenced processing of the messages on a per-sequence basis.
Within a signaling system 7 (SS7) communication network call setup and teardown information is conveyed using ISDN user part (ISUP) messages. Typically, all ISUP messages associated with the same call or xe2x80x9ccircuitxe2x80x9d are routed along the same signaling path between the originating and terminating offices involved in the call. The routing of these ISUP messages is commonly performed by SS7 signal transfer point (STP) routing nodes that reside in the network. As signaling networks have evolved, STP nodes have increasingly been used to perform message processing functions in addition to basic message routing functionality. One example of such message processing is SS7 global title translation (GTT), which is performed on class 0 signaling connection control part (SCCP) messages transmitted through a signaling network. For SCCP messages, protocol class 0 identifies a service class characterized by connectionless service for which sequencing is not required.
FIG. 1 is a block diagram of an exemplary STP node 100 that performs internal GTT processing on SCCP messages. STP 100 employs a distributed, multi-processor architecture, which allows a number of independent processor cards to simultaneously receive and process SS7 signaling messages. More particularly, STP 100 includes an interprocessor message transport bus 102, a pair of maintenance and administration subsystem processors 104, a first SS7 link interface module (LIM) 110, a second LIM 112, a first GTT processor 120, and a second GTT processor 122. As generally indicated in FIG. 1, an SCCP message received at LIM 110 may be identified as requiring GTT processing and may be directed to GTT processor 122. GTT processor 122 performs GTT address translation on the received SCCP message and determines the routing prior to directing the message to outbound LIM 112 for transmission.
In STP 100 illustrated in FIG. 1, GTT processors 110 and 112 are identically provisioned so as to be operated in a load-sharing manner. That is, an inbound or receiving LIM module distributes received SCCP messages to a GTT processor based on the available capacity of each active GTT processor module in the system. Load-sharing among multiple redundant processors is advantageous for non-stateful processing of messages. For example, GTT processing of class 0 SCCP messages requires only that a received SCCP message be translated and routed to a final destination based on the translated address. Once the GTT processor performs an address translation and directs the SCCP message to an outbound LIM, that particular address translation is of no significance to translation operations performed on SCCP messages subsequently received by the STP. Hence, GTT processing of class 0 SCCP messages is not stateful in nature, and a relatively simple load-sharing algorithm may be employed to handle internal SCCP message distribution within a multi-processor STP. For example, class 0 SCCP message may be load-shared among GTT processors on a per-message basis using any suitable message-based distribution function.
In contrast to class 0 SCCP messaging, ISUP message processing can be both stateful and sequenced. As used herein, the term xe2x80x9cstateful processingxe2x80x9d refers to processing where state information must be stored by a processor in order to process messages relating to the same transaction. The term xe2x80x9csequenced processingxe2x80x9d refers to processing that requires messages to be processed, sent or received in a particular sequence. FIG. 2 is a simplified call setup scenario involving a sample telecommunication network 150 that includes a calling party 152, a called party 154, an originating end office exchange 156, a tandem office exchange 158, a terminating end office exchange 160, and three STP nodes 162-166. When calling party 152 completes the dialing of digits associated with called party 154 (i.e., 851-2345), originating exchange 156 selects and reserves a voice trunk for the call. In this example, the selected voice trunk terminates at tandem exchange 158. As such, an ISUP initial address message (IAM) is generated by originating exchange 156 and transmitted via STP nodes 162 and 164 to tandem exchange 158. This IAM message includes information necessary for the intermediate tandem exchange 158 to complete the call setup operation. Upon receipt of the originating exchange generated IAM message, tandem exchange 158 secures the voice trunk to exchange 156 and subsequently reserves a voice trunk to terminating exchange 160. Tandem exchange 158 then generates an ISUP address complete (ACM) message, which is transmitted back to the originating exchange, and a second IAM message (i.e., IAM*), which is transmitted to the terminating exchange 160 in a manner similar to that described above.
Sometimes all of the dialed digits needed to initiate the call setup sequence are not transmitted in the IAM message. For example, the ITU ISUP protocol employs a subsequent address message (SAM) and a subsequent directory number message (SDM) to carry additional called party (CdPA) information in addition to that provided in an IAM message. A detailed description of the ITU ISUP protocol may be found in ITU publications Q.761Signaling System No. 7-ISDN User Part Functional Description, 12/1999 and Q.762 Signaling System No. 7-ISDN User Part General Functions Of Messages And Signals, 12/1999, the disclosures of which are herein incorporated by reference in their entirety.
FIG. 3 illustrates sample telecommunications network 150 and a portion of the ITU ISUP signaling involved in a call setup operation. In this signaling example, an IAM message is transmitted by the originating exchange 156 after the calling party 152 has dialed a sufficient number of digits (e.g., calling party dials xe2x80x9c851xe2x80x9d) to enable the exchange 156 to determine which voice trunk to select. The remaining dialed digit information necessary to complete the call setup is communicated to the tandem office 158 via one (or more) SAM messages, as indicated in FIG. 3.
The scenario described above and illustrated in FIG. 3 is an example of a signaling scenario that presents significant problems for stateful and/or sequenced processing of the messages. Unlike the GTT processing of class 0 SCCP messages, where all of the information necessary to process a received message is present in that message, an ISUP processing application may require that multiple, related messages (e.g., IAM, SAM, SDM messages) be collected and analyzed before stateful and/or sequenced processing can be successfully completed. For example, commonly assigned co-pending U.S. Patent Publication No. US 2002/0054674 (hereinafter, the ""674 Publication), the disclosure of which is incorporated herein by reference in its entirety, discloses methods and systems for providing triggerless intelligent network screening services based on stateful and sequenced processing of call setup messages. In one embodiment of the invention disclosed in the ""674 Publication, a triggerless screening service routing node, such as an STP, screens call setup messages, such as ISUP messages, and provides intelligent network services. Examples of intelligent network services provided include calling party screening, called party screening, charged party screening, and redirecting party screening. Each of these applications may utilize dialed digits collected from call setup messages to make a screening decision. If the dialed digits are sent in multiple messages, processing of the multiple messages may be stateful because processors may remember the state of a call in order to determine the message to be expected next. For example, after receiving an IAM message with partial dialed digits, a processor may enter a state, such as xe2x80x9cwaiting for SAM.xe2x80x9d Such processing may also be sequenced in that IAM and SAM messages must be received, processed, and transmitted in order. Thus, in order to ensure such stateful and sequenced processing, it is necessary that these call setup messages be processed by the same processor or that call setup information from one processor be forwarded to another processor. Distributing the call state among processors is undesirable because such distribution information consumes processor cycles and inter-processor bandwidth.
One message distribution approach that has been previously deployed in some distributed processing systems involves distributing messages among processors in a round-robin manner. In round-robin message distribution, messages are distributed sequentially among processors. When the last processor is reached, distribution starts again with the first processor and the algorithm repeats. While such a distribution technique may provide uniform distribution of messages across multiple application processors, this approach requires communication of state information between processors for stateful or sequenced processing, such as any of the ISUP screening processing operations described in the ""674 Publication, to be performed. This type of xe2x80x9cconstant cross-talkxe2x80x9d architecture is complex, inefficient and wasteful of communication module processing and internal communication bus bandwidth resources.
Accordingly, there exists a long-felt need for improved methods and systems for distributing signaling messages among multiple processors for stateful or sequenced processing.
The present invention includes a signal transfer point with multiple application processors for sharing the stateful or sequenced processing of messages, such as ISUP messages or class 1, 2, or 3 SCCP messages. The signal transfer point computes a sequence identifier that is unique to a given sequence of messages. The sequence identifier is used to distribute a particular message to an application processor. Because messages in the same sequence will have the same sequence identifier, messages relating to the same sequence will be distributed to the same application processor. As a result, the exchange of messages or state information between application processors is not needed. Thus, by performing distribution on a per-sequence basis, rather than a per-message basis, the present invention is more efficient than conventional message distribution algorithms.
A stateful application screening and sequencing function, which may be resident in the STP, computes the sequence identifier for each received message identified as requiring stateful or sequenced message processing. For ISUP messages, the stateful application screening and sequencing function may use the circuit identification code (CIC) and originating point code (OPC) values in received messages to compute the sequence identifier. For class 1 SCCP messages, the stateful application screening and sequencing function may use the signaling link selection (SLS) and OPC values in each received message to compute the sequence identifier.
Accordingly, it is an object of the present invention to provide methods and systems for distributing messages among multiple processors so that stateful and/or sequenced processing of the messages can be shared on a per-sequence basis.
It is another object of the invention to provide methods and systems for distributing messages among multiple processors that allow stateful and/or sequenced processing of the messages on a per-sequence basis without requiring communication of state information between processors.
Some of the objects of the invention having been stated hereinabove, other objects will be evident as the description proceeds, when taken in connection with the accompanying drawings as best described hereinbelow.